import axios from "axios"
import router from "../router"
import ElementUI from 'element-ui';
import NProgress from "nprogress"

axios.defaults.baseURL=process.env.NODE_ENV === "development"?"/api":"http://www.chst.vip"

axios.defaults.withCredentials =true;  //允许请求携带认证 选项表明了是否是跨域请求、默认是default

//中断请求
export  let CancelToken = axios.CancelToken;


//创建请求拦截器，可以给每一个请求都携带上想要传递的内容
//interceptors 拦截器
//config 的值是每一个请求对象 
axios.interceptors.request.use(config=>{
    //登入&注册是不需要携带token
    // console.log(config);
    if(config.url=="/users/login"){
        return config
    }else{
        let token = localStorage.getItem("ht2006-token")
        config.headers["authorization"] =token;
        //放行
        return config
    }
   

})

//响应拦截

axios.interceptors.response.use(config=>{
    let {data } =config;
    if(data.code =="1004"  || data.code =="10022"){
            //1在当前的后台api中1004代表token校验失败 ，让页面提示错误，页面跳转登入页  10022表示session到期生效
            ElementUI.Message.error("登入信息生效，请重新登录")
    // console.log(ElementUI);
    //死循环  移除tokrn解决
    localStorage.removeItem("ht2006-token")
        router.push("/login")
        //退出重新渲染页面
        window.location.reload()
    }

    return config
})


axios.create({
    timeout:4000     //超时时间
})


export default axios;